// 2014-02-05 Tyrghen
//---------------------------------------------
// Usage:
//  3 call edt_fnc_showMarkers;
//  [3,true] call edt_fnc_showMarkers;
//  [3,false] call edt_fnc_showMarkers;
//---------------------------------------------
// Purpose:
// Shows or hides all markers which have a name in the form: marker{id}_{index}.
// For example, on the map you have markers named: marker2_1, marker2_2, those are hidden at the start of the mission automatically.
// During the mission, you can use the showMarkers function in order to show them in one go. This allows for example to show progress on the warfront or something.
// Markers are grouped by the first numerial value {id} and the {index} is just to enumerate them.
// 
// Parameters:
// - The markers subset ID, in the example above {id}
// Optional Parameters:
// - Boolean indicating if we need to show or hide the markers
//
// Returns:
// Nothing
//---------------------------------------------
// Objectif:
// Affiche ou masque tous les marqueurs qui ont un nom de la form: marker{id}_{index}
// Par exemple, sur la carte vous avez des marqueurs nommés: marker2_1, marker2_2, qui sont automatiquement masqués au démarrage de la mission.
// Durant la mission, vous pouvez utiliser showMarkers pour montrer tout ces marqueurs d'un coup. Ca permet par emple de montrer les progrès d'un front ou d'une mission.
// Les marqueurs sont groupés par la première valeur numérique {id} et {index} n'est là que pour l'énumération.
//
// Paramètres:
// - L'identifiant de groupe des marqueurs, dans l'exemple: {id}
// Paramètres optionels:
// - Un booléen indiquant si les marqueurs doivent être affichés ou masqués
//
// Renvoie:
// Rien
//---------------------------------------------

//#define __FORCE_TRACE__
//#define __FORCE_DEBUG__
//#define __FORCE_INFO__
#define THIS_FILE "editor\fn_showMarkers.sqf"
#include <tmf_constants.h>
#include <tmf_macros.h>

TRACE_1("Start",_this);
TMFPROFILERSTART;

private ["_id","_show","_marker_name","_i","_missing"];
_id = -1;
_show = true;
if (IS_ARRAY(_this)) then {
	DEFAULT_PARAM(_id,0,-1);
	DEFAULT_PARAM(_show,1,true);
} else {
	_id = _this;
};

if (OR_ELSE((!IS_SCALAR(_id)),(_id <= 0))) then {
	ERROR("Invalid Parameters");
} else {
	_i = 0;
	_missing = 0;
	
	while { _i < 1000 && _missing < 20 } do {
		_marker_name = format[TMF_LOCAL_MARKER_NAME, _id, _i];
		if (IS_MARKER(_marker_name)) then {
			_missing = 0;
			if (_show) then {
				_marker_name setMarkerAlphaLocal 1;
			} else {
				_marker_name setMarkerAlphaLocal 0;
			};
		} else {
			INC(_missing);
		};
		INC(_i);
	};
};
TRACE("End");
TMFPROFILERSTOP;